export class TestMasterPlugin extends plugin {
  constructor() {
    super({
      name: "权限环境检测器",
      dsc: "综合检测权限和群聊环境",
      event: "message",
      priority: 1000,
      rule: [
        {
          reg: "^#测试$",
          fnc: "checkEnv",
          permission: "all"
        }
      ]
    });
  }

  async checkEnv(e) {
    // 获取用户信息
    const userInfo = await this.getUserInfo(e);
    const botInfo = this.getBotInfo(e);

    // 构建基础报告
    const report = [
      "🔍 环境检测报告",
      `▸ 是否主人: ${e.isMaster ? '✅ 是' : '❌ 否'}`,
      `▸ 环境类型: ${e.isPrivate ? '私聊' : '群聊'}`,
      `▸ 用户ID: ${e.user_id} (${userInfo.nickname})`,
      "\n🤖 机器人信息",
      `▸ 账号ID: ${botInfo.id}`,
      `▸ 账号昵称: ${botInfo.nickname}`
    ];

    // 群聊环境增强信息
    if (!e.isPrivate) {
      report.push(
        "\n🏷️ 群聊信息",
        `▸ 群号: ${e.group_id}`,
        `▸ 群名称: ${e.group_name || '未知'}`,
        `▸ 用户身份: ${this.getGroupRole(e)}`
      );
    }

    await e.reply(report.join("\n"));
    return true;
  }

  // 获取用户信息（包含昵称）
  async getUserInfo(e) {
    try {
      let nickname = e.sender?.nickname || '未知';

      // 私聊环境下获取好友备注
      if (e.isPrivate && e.friend) {
        nickname = e.friend.remark || nickname;
      }

      return {
        nickname
      };
    } catch (err) {
      logger.error('获取用户信息失败:', err);
      return { nickname: '未知' };
    }
  }

  // 获取机器人信息（同步方式）
  getBotInfo(e) {
    try {
      return {
        id: e.bot?.uin.toString() || '未知', // icqq 中机器人 ID 为 uin
        nickname: e.bot?.nickname || '未知'
      };
    } catch (err) {
      logger.error('获取机器人信息失败:', err);
      return { id: '未知', nickname: '未知' };
    }
  }

  // 获取详细的群成员身份
  getGroupRole(e) {
    if (e.member?.is_owner) return '👑 群主';
    if (e.member?.is_admin) return '⭐ 管理员';
    return '👤 普通成员';
  }
}